/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.text;

import java.util.HashMap;
import java.util.Map;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.SVG;

/**
 *
 * @author nt
 */
public interface _BaseLineProperties {

    final Map<String, String> INTERFACE_ATTRIBUTES = new HashMap<String, String>(0x3) {

        {
            put(SVG.ALIGNMENT_BASELINE_PROP, SVG.ALIGNMENT_BASELINE_ATTR);
            put(SVG.BASELINE_SHIFT_PROP, SVG.BASELINE_SHIFT_ATTR);
            put(SVG.DOMINANT_BASELINE_PROP, SVG.DOMINANT_BASELINE_ATTR);

        }
    };

    /**
     * Value: auto | baseline | before-edge | text-before-edge | middle |
     * central | after-edge | text-after-edge | ideographic | alphabetic |
     * hanging | mathematical | inherit
     *<br/>
     * This property specifies how an object is aligned with respect to its
     * parent. This property specifies which baseline of this element is to be
     * aligned with the corresponding baseline of the parent. For example, this
     * allows alphabetic baselines in Roman text to stay aligned across font
     * size changes. It defaults to the baseline with the same name as the
     * computed value of the alignment-baseline property. That is, the position
     * of "ideographic" alignment-point in the block-progression-direction is
     * the position of the "ideographic" baseline in the baseline-table of the
     * object being aligned.
     */
    @JSFProperty
    String getAlignmentBaseline();

    /**
     * Value: baseline | sub | super | &lt;percentage&gt; | &lt;length&gt; | inherit
     *<br/>
     * The ‘baseline-shift’ property allows repositioning of the
     * dominant-baseline relative to the dominant-baseline of the parent text
     * content element. The shifted object might be a sub- or superscript.
     * Within the shifted object, the whole baseline-table is offset; not just a
     * single baseline. The amount of the shift is determined from information
     * from the parent text content element, the sub- or superscript offset from
     * the nominal font of the parent text content element, percent of the
     * "line-height" of the parent text content element or an absolute value
     */
    @JSFProperty
    String getBaselineShift();

    /**
     * Value: auto | use-script | no-change | reset-size | ideographic |
     * alphabetic | hanging | mathematical | central | middle | text-after-edge
     * | text-before-edge | inherit
     *<br/>
     * The "dominant-baseline" property is used to determine or re-determine a
     * scaled-baseline-table. A scaled-baseline-table is a compound value with
     * three components: a baseline-identifier for the dominant-baseline, a
     * baseline-table and a baseline-table font-size. Some values of the
     * property re-determine all three values; other only re-establish the
     * baseline-table font-size. When the initial value, auto, would give an
     * undesired result, this property can be used to explicitly set the desire
     * scaled-baseline-table.
     */
    @JSFProperty
    String getDominantBaseline();
}
